/*
 * Solution.h
 *
 *  Created on: 17.10.2010
 *      Author: jilly
 */

#ifndef SOLUTION_H_
#define SOLUTION_H_

#include <list>
#include "Move.h"

using namespace std;

/**
 * class represents solution to problem
 *
 * consist of sequence of moves
 */
class Solution
{
private:
	list<Move*> moves;
public:
	Solution();
	~Solution();
	/** adds new move to the end of sequence of moves */
	void addNextMove(Move* move);
	/** adds new move to the beginning of sequence of moves */
	void addPrevMove(Move* move);
	/** removes last move from list */
	void removeLastMove();
	list<Move*> getMoves();
	Solution* clone();
	void print();
};

#endif /* SOLUTION_H_ */
